package com.zkah.myfirstpoi.common;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class MyException extends RuntimeException {
    private static final long serialVersionUID = 1L;
    /**
     * 错误编码
     */
    private String errorCode ;
    /**
     * 消息是否为属性文件中的key
     */
    private boolean propertiesKey = true;

    /**
     * 构造一个基本异常类
     * @param message
     *  信息描述
     */
    public MyException(String message){
        super(message);
    }

    /**
     * 构造一个基本异常
     * @param errorCode
     *          错误编码
     * @param message
     *          信息描述
     */
    public MyException(String errorCode,String message){
        this(errorCode,message,true);
    }

    /**
     *
     * @param errorCode
     *          错误编码
     * @param message
     *          信息描述
     * @param propertiesKey
     *      消息是否为属性文件中的Key
     */
    public MyException(String errorCode,String message,Boolean propertiesKey){
        super(message);
        this.setErrorCode(errorCode);
        this.setPropertiesKey(propertiesKey);
    }

    /**
     * 构造一个基本异常
     * @param errorCode
     *          错误编码
     * @param message
     *          信息描述
     * @param cause
     *          根异常类（可以存入任何异常）
     */
    public MyException(String errorCode,String message,Throwable cause){
        this(errorCode,message,cause,true);
    }
    public MyException(String errorCode, String message, Throwable cause, boolean propertiesKey)
    {
        super(message, cause);
        this.setErrorCode(errorCode);
        this.setPropertiesKey(propertiesKey);
    }

    /**
     * 构造一个基本异常
     * @param message
     *          信息描述
     * @param cause
     *          根异常类（可以存入任何异常）
     */
    public MyException(String message,Throwable cause){
        super(message,cause);
    }
}
